/* 
类类型: 实现接口
1. 一个类可以实现多个接口
2. 一个接口可以继承多个接口

*/
(function () {
  interface Alarm {
    alert(): void
  }

  interface Light {
    lightOn(): void
    lightOff(): void
  }

  // 一个接口可以继承于多个接口
  interface LightAlarm extends Alarm, Light{
    // alert(): void
    // lightOn(): void
    // lightOff(): void
  }

  class Car2 implements LightAlarm {
    alert(): void {
      console.log('car alert2')
    }
    
    lightOn(): void {
      console.log('car lightOn2')
    }
    
    lightOff(): void {
      console.log('car lightOff2')
    }
  }

  // 一个类可以实现多个接口
  class Car implements Alarm, Light {
    alert(): void {
      console.log('car alert')
    }
    
    lightOn(): void {
      console.log('car lightOn')
    }
    
    lightOff(): void {
      console.log('car lightOff')
    }
  }

  const c = new Car()
  c.alert()
  c.lightOff()
  c.lightOn()

})()